36 |
Velkommen til Datamatiker-studiet!
Generel intro til Zealand og studiet
Overblik over Software Construction
Værktøjer og Materialer
I gang med Visual Studio Enterprise 2019
|
Introprogram
Introduktion til Zealand og studiet
Introduktion til IT-systemer
Visual Studio Enterprise 2019
Du får licens-nøgle fra Azure Dev Tools (tidligere Microsoft Imagine)
ReSharper (du skal have en licens-nøgle)
HowTo make Visual Studio (with ReSharper) quiet...
Git |
Hyttetur (onsdag-torsdag, detailplanlægges senere) |
37
|
Programming - Part I
Code organisation
Types
Variables
Type conversion
Simple I/O
Arithmetic
Logic
Functions
|
IT HW SW
Noter: s 7-41
(Bog: Kap. 1, 2) |
Get.1
Pro1.1 - Pro1.3
Ekstra opgave: (PrintMovie - funktion)
Tag udgangspunkt i opgave Pro1.1 (MovieManagerV05).
Lav en ny funktion PrintMovie( ..) der kan udskrive alle dine informationer om en film.
Bemærk, at funktionen skal defineres (skrives) uden for kroppen af MyCode() funktionen, dvs efter public void MyCode{ ... }.
Funktionen skal være public og void, og skal tage alle dine varable der beskriver en film, som paramertre.
Omstrukturerer (refaktorerer)
MyCode( ) funktionen, så alle Console.WriteLine sætningerne der udskriver film-information flyttes til PrintMovie(...). Kald PrintMovie(...) fra MyCode( ).
Prøv evt at ændre på dine film-oplysninger (fx title="XXX") og kald PrintMovie( ..) igen.
|
38-39 |
Object-Oriented Programming - Part I
What is OO?
Creating objects
Reference-type vs. value-type
Using properties and methods
Class definitions
Class collaboration
Static classes and methods |
Noter: s.42-75
(Bog: Kap. 7) |
Program fra klassen (17/9):
MovieManager.zip
Program fra klassen (19/9):
PersonClassTest.zip
Ekstra opgave: (LilleOpgave)
1) Lav et program der kan tage et heltal som input og fortælle om det er et et negativt tal, et positivt tal eller nul.
2) Lav et andet program der tager to heltal som input og kan fortælle hvilket af dem der er størst.
Løsning:
LilleOpgave.zip
OOP.1.1 - 1.7
Studiestartsprøve |
40-41 |
Programming - Part II
Control statements
Debugging
Data structures
Code Quality (keeping code DRY) |
Noter: s.76-116
(Bog: Kap. 4, 5, 10, 18)
Bemærk, hvis du har svært ved C# og døjer lidt med de engelske gloser, findes der noget materiale på dansk her:
Nemprogrammering.dk (c# - kursus på dansk) Nyt ! |
Ekstra opgave: (Class Fly)
Implementer klassn Fly - helt fra grunden i et nyt consol-project.
Klassen Fly skal have følgende:
Instansfelter: _xPosition, _yPosition, _xSpeed, _ySpeed og _flyId.
Konstruktører: Fly(string) og Fly(string, double, double, double, double)
Properties: FlyId(readonly), XPosition, YPosition, XSpeed, YSpeed
Metoder: Move(), Accelerate(), Decelerate(), Stop(), Turn(double, double)
Move() skal opdatere _xPosition og _yPosition ved at addere _xSpeed og _ySpeed til positionerne. Accelerate() og Decelerate() skal opdatere _xSpeed og _ySpeed med en
fast procentsats fx 10%. Stop() sætter _xSpeed og _ySpeed til 0. Turn(double, double) gopdatere _xSpeed og _ySpeed med nye værdier.
Test klassen Fly ved at oprette Fly-objekter i Main() og kalde metoderne på objekterne.
(Brug Console.WriteLine() til at udskrive flydata før og efter hvert metodekald.)
Hvis du har mod på vektorregning eller er en ørn til cosinus og sinus er du velkommen til at beregne de nye værdier i stedet for at parameteroverføre de nye værdier :)
Løsning: FlyClass.zip (kode fra klassen)
Pro.2.1 - Pro.2.15 |
42 |
Efterårsferie |
|
|
43-44 |
Object-Oriented Programming - Part II
Composition/Inheritance
Object construction
Overriding properties/methods
Polymorphic behavior
Abstract methods and classes
Interfaces
Exceptions |
Noter: s.117-133
(Bog: Kap. 12, 13, 6 (i den orden)) |
Begreber2 if og løkker
EjendomsMægleren
OOP.2.1 - 2.6
ISpeak
Exceptions-stack
Program fra klassen (29/10):
WolvPack.zip
Løsning: ISpeak.zip (kode fra klassen, 29/10)
Løsning: MyStackSimple.zip (kode fra klassen, 31/10) |
44-45 |
GUI, XAML and Data Binding
XML/XAML
Simple GUI controls
Layout controls
Control properties
Data binding fundamentals
Collection views and Data binding
Master/Details view and Data binding
Commands
|
Noter: s.134-174
(Bog: Kap. 25, 26)
Windows Dev Center: Layout
How to: Implement Property Change Notification Problemer med at sætte windows i developer mode |
SimpleBindingMVVM.html (Opdateret d 12/11)
NoteMVVM.html (Opdateret d. 14/11)
(GUI.1.0 - GUI 1.8) |
45 |
MVVM Architecture
Single domain object
Collection of domain objects
Item view model
Master view model
Details view model
MasterDetails view model
Commands in MVVM |
Noter: s.175-193
(Bog: Kap. 26)
Databinding Part1
Databinding Part2
Other Interesting MVVM-links
MVVM-Pattern-in-WPF-A-Simple-Tutorial-for-Absolute-Beginners
WPF-MVVM-Quick-Start-Tutorial
wpf-mvvm-pattern-a-simple-tutorial-for-absolute-beginners
http://wpftutorial.net/DataGrid.html
WPF Apps With The Model-View-ViewModel Design Pattern
Simple MVVM Walkthrough – Part I
|
(GUI.2.0 - GUI.2.3)
C#-Projects:
RelayCommand.zip
RelayArgCommand.zip |
46
|
Bindings
MVVM Design Pattern |
MSDN: Commands, RelayCommands and EventToCommand
EventToCommand is now built into Windows 8.1!
Other Interesting XAML-links (about ListView and GridView)
Quickstart: adding ListView and GridView controls (XAML)
How to group items in a list or grid (XAML)
Data Templating overview (DataTemplate, ItemTemplate)
Designing Your XAML UI :
XAML for Windows 10: Layout
XAML for Windows 10: Items Controls |
Ekstra opgave: (Grid + StackPanel Tutorial)
Use Grid and StackPanel to create a simple weather app
HINT: XAML styler (God styler/formatter til din XAML-kode)
Løsning: SimpleBindingMVVM.zip Program fra klassen (12/11)
Løsning: NoteMVVM.zip Program fra klassen (14/11)
|
46 |
Persistens:
Filer/Serialisering
|
Windows App Store:
MSDN: StorageFolder
|
Exercise:
SerializationTest
Exercise:
Implementer persistens i Note App'en se: NoteMVVM.html
Dvs. det skal være muligt at hente og gemme Noter på fil.
Bemærk:
I windows App er der ikke adgang/rettigheder til filsystemet direkte, dvs der kan ikke umiddelbart streames (serialiseres) til en hvilkårlig fil. I stedet kan benyttes localstorage, der fås adgang til via class StorageFolder/StorageFile.
Følgende skriver localdata til filen Data.txt i localstorage:
StorageFile localFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("Data.txt", CreationCollisionOption.ReplaceExisting);
await FileIO.WriteTextAsync(localFile, localData);
Filen kan findes på harddisk her: C:\Users\{user}\AppData\Local\Packages\7bbfef26-f6ac-4a10-9fed-4abfefafca86_18sn2ae6rna7w\LocalState.
Løsning: NoteMVVMSerialize.zip (Kode fra klassen 21/11)
C#-Projects:
WindowsAppSerializeTest.zip
PersistencyService
|
47 |
Async, Task, Await
|
MSDN: Asynchronous Programming with Async and Await
CodeProject: Asynchronous Programming in C# 5.0 using async and await
Don't Block on Async Code
Slides: ProcessesAndThread (PowerPoint)
Slides: AsynchronousPrograming (PowerPoint)
|
C#-Projects:
GuiExampleAsyncAwait
SimpleBrowserAsync
Notice:
"Blend always launches with "We're preparing for first use" dialog"
|
47 |
Exceptions
|
MSDN Exceptions and Exception Handling (C# Programming Guide)
MSDN Gracefully Handling Exceptions -21 (video)
Exceptions (PowerPoint)
Exceptions and Exception Handling in C#
|
Exercise:
I programmet SerializationTest.zip fra uge 46 blev der testet en simpel Reading og Writing til en FileStream, men uden brug af Exceptions-håndtering. Udvid programmet så der nu bliver implementeret en Exception-håndtering (fx håndtering af FileNotFoundException og DirectoryNotFoundException)
MyStack
C#-Projects:
WindowsAppSerializeTestV2.zip
(nu med håndtering af FilNotFoundException)
Solutions:
MyStack.zip
|
48-50 |
Projektarbejde |
|
C#-Projects:
PersistencyService
EventCatalogSingleton (kode vist i klassen) |
51 |
Projektaflevering
Repetition/Spørgetimer |
|
|
2 |
Spørgetime: 7. januar
(SWC:
10.00-11.30, SWD: 12.15-13.30)
Eksamen 20-21. januar 2019
Gruppe 1-3
d. 20/1
Gruppe 4-6
d. 21/1 |
Eksamensspørgsmål Nyt !
Eksamensliste (Mødeliste) |
|